iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 11
0
自我挑戰組

30天教你學會Git系列 第 11

[Day11] 等等.........我剛剛做了啥?

  • 分享至 

  • xImage
  •  

對,我很常忘記自己剛剛做了甚麼,尤其是commit了什麼內容

  • 當然,會說這個代表有問題可以解決
  • Git很貼心的幫你準備了一個指令,可以讓你看到你之前的commit的內容是甚麼~~
  • 我們先來對之前那個Hello.txt做一下更改,在裡面增加一些文字
  • 我們先看一下git status
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   Hello.txt

no changes added to commit (use "git add" and/or "git commit -a")
  • OK,我們現在確定檔案有新增了,接下來就是git add以及git commit
$ git add .
$ git commit -m "This commit is for git log~~"
[master c1bd3b4] This commit is for git log~~
 1 file changed, 1 insertion(+)

講那麼多,我們到底要怎麼回顧之前的Commit呢?

  • 好啦別急,可能剛剛有人發現我的Commit內容有出現了陌生的字眼
  • 沒錯,就是git log,這個指令可以讓我們看到之前到底有哪些Commit內容
$ git log
commit c1bd3b47badc91da05cad85e6beab0fa9b835c06 (HEAD -> master)
Author: jackey10055206 <jackey10055206@gmail.com>
Date:   Fri Sep 18 09:32:30 2020 +0800

    This commit is for git log~~

commit 3334501698721c0e89bfe6b586f62cbe295bf4d6
Author: jackey10055206 <jackey10055206@gmail.com>
Date:   Fri Sep 18 09:26:23 2020 +0800

    This file is for you!!
  • 你可以從上面的東西看出以下的內容

    • 這次Commit的作者
    • 什麼時候Commit的
    • 為了什麼Commit
  • 恩這就是git log的功用啦~當然了,git log後面還可以掛很多參數

$ git log --oneline #以一行的方式輸出Git log
c1bd3b4 (HEAD -> master) This commit is for git log~~
3334501 This file is for you!!


$git log --graph #以圖形的方式輸出Git log
* commit c1bd3b47badc91da05cad85e6beab0fa9b835c06 (HEAD -> master)
| Author: jackey10055206 <jackey10055206@gmail.com>
| Date:   Fri Sep 18 09:32:30 2020 +0800
|
|     This commit is for git log~~
|
* commit 3334501698721c0e89bfe6b586f62cbe295bf4d6
  Author: jackey10055206 <jackey10055206@gmail.com>
  Date:   Fri Sep 18 09:26:23 2020 +0800

      This file is for you!!
      
     
$ git log --oneline --grep "git log"  #grep可以放你想要搜尋的東西
c1bd3b4 (HEAD -> master) This commit is for git log~~

$git log --oneline --author "jackey10055206" #author用來找特定的人發了什麼Commit
c1bd3b4 (HEAD -> master) This commit is for git log~~
3334501 This file is for you!!
  • 更厲害的是,git log可以依照你想要的格式去做輸出!!
    • %h 就是該更新的簡短HASH值
    • %an 就是該Commit的作者
    • %ar 就是相對於目前作者的時間
    • %s 就是內容
$ git log --pretty=format:"%h - %an, %ar : %s"
c1bd3b4 - jackey10055206, 20 minutes ago : This commit is for git log~~
3334501 - jackey10055206, 26 minutes ago : This file is for you!!
  • 可參考一下的圖去自訂想要輸出的格式哦!

補充一個冷知識,Commit時的訊息不是有一個長得很像亂碼的嗎?
(c1bd3b47badc91da05cad85e6beab0fa9b835c06)
就像上面這樣
其實這是一個SHA-1演算法所得到的結果
你可以把他想成是一種身分證的概念
每一個Commit都會有一個自己的SHA-1

好啦今天謝謝各位的收看啦,我們明天再見


上一篇
[Day10] 今天我們來回味一下....
下一篇
[Day12] 啊我專案不知為啥做錯了......怎麼辦?
系列文
30天教你學會Git30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
joyang
iT邦新手 5 級 ‧ 2021-06-23 21:02:12

在commit完後我再輸入git status出現這行On branch master
nothing to commit, working tree clean而非您圖片所顯示的是為什麼呢

是正常的哦! 我那個圖片是"我對檔案做出了修改,但還沒對檔案進行commit的動作"

我要留言

立即登入留言